Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 27.02.2010 19:14:59
Hallo, eine Frage von einem Anfänger. Eigentlich möchte ich von php zwei Datenfelder an javascript übergeben. Aber ich bin schon bei meinem Minitestscript auf die Nase gefallen. Er funtioniert nicht. alert gibt keinen Wert aus. Wer weiß warum?
<script language="JavaScript" type="text/javascript"><!--
function NeuesFenster(wert)
{
var wert = wert;
alert (wert);
}
//--></script>
</head>
<body>
<?php
$wert = 5;
echo '<a href="#" onclick="javascript:NeuesFenster([<?php echo $wert; ?>])">
<img src="Bilder/navi.jpg"style="position:absolute; left:850px; top:200;" ></a>';
?>
</body>
</html>
Vielen Dank im voraus. Marion
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: SaschaPall
Datum: 28.02.2010 00:06:02
Hallo MariL!
dein Fehler ist nur eine Kleinigkeit!
> <script language="JavaScript"
> type="text/javascript"><!--
> function NeuesFenster(wert)
> {
> var wert = wert;
> alert (wert);
> }
> //--></script>
> </head>
>
> <body>
> <?php
> $wert = 5;
//==> hier startest du eine PHP-Ausgabe, also ein "echo".
> echo '<a href="#"
> onclick="javascript:NeuesFenster([<?php echo
> $wert; ?>])">
//==> damit ist das nochmalige aufrufen von php mit "<?php echo..." sinnlos. schreibe statt
<a href="#" onclick="javascript:NeuesFenster([<?php echo $wert; ?>])">
einfach das hier ==>
<a href="#" onclick="javascript:NeuesFenster(' . $wert . ')">
das erste ' in der Klammer unterbricht dein echo. mit dem " . " kannst du etwas einfügen, in diesem Fall $wert, dann brauchst du wieder " . " und ' um das echo fortzusetzen.
:-)
HTH Sascha
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 28.02.2010 06:15:46
Hallo Sascha, vielen Dank für Deinen Tip. Ich habe die Übergabe noch mit 2 Werten getestet. Hat auch funktioniert. Aber die Übergabe zweier arrays klappt nicht. Bei alert erhalte ich für die array-Länge immer 1.
<script language="JavaScript" type="text/javascript"><!--
function NeuesFenster(y_coord, bild)
{
var y_coord = new Array (y_coord);
var bild = new Array (bild);
alert (y_coord.length);
alert (bild.length);
}
//--></script>
</head>
<body>
<?php
$y_coord = array (200, 100, 300);
$bild_gross[0] = "T1.jpg";
$bild_gross[1] = "T2.jpg";
$bild_gross[2] = "T3.jpg";
echo '<a href="#" onclick="javascript:NeuesFenster(' . $y_coord . ', ' . $bild_gross . ')">
<img src="Bilder/navi.jpg"style="position:absolute; left:850px; top:200;" ></a>';
?>
Danke. MariL
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: reporter
Datum: 28.02.2010 13:35:21
Hallo,
ein PHP-Array ist mit einem Javascript-Array inkompatibel. Für eine Übergabe mußt du also das PHP-Array durchlaufen und jedes Element in die richtige Javascriptsyntax übersetzt werden.
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 28.02.2010 16:32:28
Hallo, nach dem letzten Tip habe ich meine php-arrays in Zeichenketten umgewandelt u. mit echo überprüft.
Für $y_str = (200,100,300) und für
$bild_str = ("T1.jpg","T2.jpg","T3.jpg"). Aber die Übergabe muss fehlerhaft sein, denn es wird nicht mal ein "Hallo" ausgegeben.
<script language="JavaScript" type="text/javascript"><!--
function NeuesFenster(y_coord, bild)
{
alert("Hallo");
        var y = new Array(y_coord);
var bild_gross = new Array(bild);
alert(y.length);
alert(bild.length);
}
//--></script>
</head>
<body>
<?php
$y_coord = array(200, 100, 300);
$bild_gross[0] = "T1.jpg";
$bild_gross[1] = "T2.jpg";
$bild_gross[2] = "T3.jpg";
$y_str = implode (",",$y_coord);
$bild_str = implode (",",$bild_gross);
echo '<a href="#" onclick="javascript:NeuesFenster(' . $y_str . ', ' . $bild_str . ')">
<img src="Bilder/navi.jpg"style="position:absolute; left:850px; top:200;" ></a>';
?>
</body>
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: T.Jung
Datum: 28.02.2010 16:44:11
> Hallo, nach dem letzten Tip habe ich
... ihn nicht befolgt und mit
> php-arrays in Zeichenketten umgewandelt
... statt dessen etwas völlig anderes gemacht.
Nochmal:
Du musst das Array durchlaufen und für jedes einzelne Element den Link samt img-Element ausgeben. Dann hast Du drei Links mit jeweils einer Bilddatei, die der JS-Funktion NeuesFenster() übergeben wird.
Übrigens, bei solchen Problemen hilft es, wenn Du Dir anguckst, welcher Quelltext letztendlich im Browser ankommt...
Gruß,
Tobias Jung
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 28.02.2010 17:47:43
OK, vielleicht sollte ich mal schreiben, was ich eigentlich machen will, denn ich kann den 3 links nicht die dazugehörige Bilddatei zuordnen. Der Seitenaufbau erfolgt mit php. Die Werte zum Positionieren der Bilder_klein werden aus einer Datenbank entnommen u. mit jeweils einem Vergrößerungsbutton positioniert. Der Datensatz enthält auch ein entsprechendes Bild_gross. Nach dem Seitenaufbau = Schleifenende soll bei onclick ein Fenster mit dem entsprechenden Bild_groß geöffnet werden. Ich wollte mir die y-Koordinaten u. die dazugehörigen Bild_groß beim Auslesen der Datensätze in ein array schreiben, diese an js übergeben u. mit dem Vergleich der Cursorposition beim Click das dazugehörige Bild_groß ermitteln. Aber vielleicht ist das auch viel zu umständlich oder nicht realisierbar. (Bin nur ein Anfänger). Ich wäre dankbar für jeden Tip, wie ich das Problem lösen soll.
Nochmals vielen Dank.
VGr. MariL
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: SaschaPall
Datum: 28.02.2010 19:35:47
Hallo,
wenn ich das richtig verstanden habe, durchläufst du eine Schleife, bei der du mit jedem durchlauf ein Bild als Link erstellst. Dieser Link öffnet dann das jeweilige Bild als Großformat...
wenn das so ist, dann kannst du in der Schleife die $i immer um eins erhöhen, und in die Links einbauen. Somit wäre jeder Link anders (ob nun eine andere Funktion aufgerufen wird, oder ob du nur einen eigenen wert übermittelst bleibt dir überlassen).
HTH Sascha
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 28.02.2010 20:16:22
Hallo Sascha, ich werde auf jedenfall diese Variante ausprobieren. Noch weiß ich nicht wie. Vielleicht über eine variable id. Aber wie ordne ich dann das dazu passende bild_gross zu? Ich müsste ja zuerst bei onclick den Wert der id bestimmen und dann das bild_gross[id] an NeuesFenster übergeben. Ob ich das schaffe?
Vielen Dank für die Hilfe.
MfGr MariL
Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: SaschaPall
Datum: 01.03.2010 16:18:48
Hallo!
Poste bitte mal hier den gesamten Code.
Also vorallem die PHP schleife die die Links erzeugt, dann kann ich dir weiterhelfen ;-)
Wenn du willst, können wir das auch per PN machen, dann posten wir das Forum hier nicht so voll ^^
MfG Sascha
[Hinweis] Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: Freddy
Datum: 01.03.2010 19:30:40
Hallo,
> Wenn du willst, können wir das auch per PN
> machen, dann posten wir das Forum hier nicht so
> voll ^^
... dann wäre der Thread hier ja total sinnlos. Postet einfach hier rein, es gab schon viel längere Threads und da hat sich auch keiner (bis auf Netinja, das aber aus einem anderen Grund) beschwert.
Gruß,
Freddy
Re: [Hinweis] Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 13.03.2010 07:48:19
Hallo, bitte entschuldigt meine lange Funkstille. Ich hatte großen Ärger mit meinem PC und konnte somit an meinem Problem nicht weiterarbeiten. Ich poste mal mein Testscript.
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript"><!--
function NeuesFenster(y_coord, bild)
{
var y = new Array(y_coord);
var bild_gross = new Array(bild);
alert(y.length);
alert(bild_gross.length);
}
//--></script>
<style type="text/css">
<!--
.Layer1 { position:absolute; left:20px; width:150px; height:20px; text-align:left; color:#000000; z-index:1;}
.Layer2 { position:absolute; left:820px; width:150px; height:20px; text-align:left; color:#000000; z-index:2;}
-->
</style>
</head>
<body style="background-color:#FFFFFF; margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px;
font-family:Arial; font-size:12px; font-weight:700; text-align:center; color:#C1271D;">
<?php require_once('Connections/Test.php'); ?>
<?php
mysql_select_db($database_Test, $Test);
$query_Abfrage1 = "SELECT * FROM knuepfteppich";
$Abfrage1 = mysql_query($query_Abfrage1, $Test) or die(mysql_error());
$abst = 20;
$hoehediff = 0;
while($row_Abfrage1 = mysql_fetch_row($Abfrage1))
{
//Positionieren: Bild_klein links + Navi.jpg zum Bildvergrössern
    $k = 1;
$abst = 20;
$abst = $hoehediff + $abst;
$abststr = "$abst";
$abstpx = $abststr . "px";
echo '<div class="Layer' . $k . '" style="top:' . $abstpx . '">
<img src="' . $row_Abfrage1[2] . '" width="' . $row_Abfrage1[0] . '" height="' . $row_Abfrage1[1] . '"></div>';
//Übergabe der Werte mit onclick an javascript
echo '<a href="#" onclick="javascript:NeuesFenster(' . $y_str . ', ' . $bild_str . ')">
<img src="Bilder/navi.jpg" width=20px height=20px style="position:absolute; left:650px; top:' . $abstpx . ';" ></a>';
//Positionieren: variabler Textteil zur Bilderklärung bild_klein
$k = $k+1;
for($i=3; $i<10; $i++)
    {
      echo '<div class="Layer' . $k . '" style="top:' . $abstpx . '">' . $row_Abfrage1[$i] . '</div>';
$abst = $abst + 30;
$abststr = "$abst";
$abstpx = $abststr . "px";
$hoehediff =  $row_Abfrage1[1] + 10;
    }
// Felderbelegung für javascript
$y_coord[] = $abst;
$bild_gross[] = $row_Abfrage1[10];
}
//aus den Feldern werden strings
$y_str = implode (",",$y_coord);
$bild_str = implode (",",$bild_gross);
mysql_free_result($Abfrage1);
?>
</body>
</html>
Wie gesagt, ich möchte eigentlich nur!!! das jeweilige Bild in einem popup anzeigen. Wenn die Zuordnung mit onclick anders geht, brauchte ich die y-Koordinate nicht.
Viele Grüße
MariL
Re: [Hinweis] Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: SaschaPall
Datum: 13.03.2010 12:45:37
Hallo!
> Wie gesagt, ich möchte eigentlich nur!!! das
> jeweilige Bild in einem popup anzeigen.
willst du vielleicht etwas wie das im nachfolgenden link machen?
HTH Sascha
Re: [Hinweis] Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: MariL
Datum: 13.03.2010 15:42:59
Hallo Sascha,
ja genau so soll es aussehen. Nur möchte ich die vielen Bilder und Texte aus einer Datenbank nehmen und nicht statisch in html programmieren. Funktioniert das auch mit der Schleife in php? Beim Klick auf Bild_klein z.B., wo erfolgt die Zuordnung von Bild_gross? Das wird doch immer überschrieben.
Danke u. viele Grüße MariL
Re: [Hinweis] Re: Wertübergabe von php an javascript funktioniert nicht!
Autor: netinja
Datum: 28.03.2010 08:52:54
> > Wenn du willst, können wir das auch per PN
> > machen, dann posten wir das Forum hier nicht so
> > voll ^^
>
> ... dann wäre der Thread hier ja total sinnlos.
> Postet einfach hier rein, es gab schon viel
> längere Threads und da hat sich auch keiner (bis
> auf Netinja, das aber aus einem anderen Grund)
> beschwert.
Hallo!  :-)
Ja bitte!  Keine PNs!
Sonst können andere, die über die Suche hierherkommen, nicht mehr an dem Thread teilhaben.
Es ist sowieso schon nachteilig genug, dass viele Fragesteller ihre Testdateien nach wenigen Tagen löschen, und es somit anderen oft nicht mehr möglich ist, das Problem nachzuvollziehen.
Auf der anderen Seite wiederum habe ich es schon oft erlebt, dass man als Hilfesuchender immer gerne von anderen auf die Forensuche verwiesen wird, in der es angeblich schon Hunderte von Threads für das gefragte Thema geben soll.
Aber bis man dann wirklich mal einen Thread findet, bei dem die verlinkten Dateien und Grafiken noch vorhanden sind, und der deshalb weiterhilft, musste man schon zuvor mindestens 20 unnütze Threads durchackern. :-(
Deshalb mein Vorschlag für selfhtml:
Könnte man nicht einen Bereich einrichten, in dem besonders hilfreiche Threads gespeichert werden? Dort müsste auch sichergestellt werden, dass verlinkte Dateien und Grafiken nicht mehr gelöscht werden.
Eventuell könnte man auf dem Forenserver ein Plätzchen dafür einrichten?
PS-1
Ich pose zwar nicht mehr so viel, lese aber doch noch regelmässig mit. :-D
PS-2
> und da hat sich auch keiner (bis
> auf Netinja, das aber aus einem anderen Grund)
> beschwert.
Ich habe meistens nur einen sehr kleinen Bildschirm zur Verfügung, daran hat sich leider nichts geändert.
Da ist es immer äusserst nervig, wenn durch einen langen Link ein Thread in der Gesamtansicht so breit wird, dass man bei jeder Zeile waagrecht scrollen muss. :-(
LG
netinja
|